package it.unisalento.appsalento.adapter;

import it.unisalento.R;
import it.unisalento.appsalento.activity.App;
import it.unisalento.appsalento.model.Appello;
import it.unisalento.appsalento.model.Esame;

import java.util.ArrayList;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;

public class ListaEsamiAdapter extends ArrayAdapter<Esame> {
	
	public ListaEsamiAdapter(Context context, int textViewResourceId,
			ArrayList<Esame> objects) {
        super(context, textViewResourceId, objects);
    }

	@Override
    public View getView(int position, View convertView, ViewGroup parent) {
        LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        convertView = inflater.inflate(R.layout.row_libretto, null);
        
        TextView mNomeEsame = (TextView)convertView.findViewById(R.id.nome_esame);
        TextView mStatoEsameText = (TextView) convertView.findViewById(R.id.stato_esame);
        TextView mAppelliRisultati = (TextView)convertView.findViewById(R.id.appelli_o_risultati);
        
        Esame esame = getItem(position);
        
        mNomeEsame.setText(esame.getNomeEsame());
        if(!"".equals(esame.getStato())){
		    String stato = esame.getStato().toUpperCase();
		    mStatoEsameText.setText(stato);
		    
			if (stato.equals(Esame.STATO_S)) {
				mStatoEsameText.setBackgroundColor(parent.getResources()
						.getColor(R.color.unisalento_esame_s));
			} else if (stato.equals(Esame.STATO_F)) {
				mStatoEsameText.setBackgroundColor(parent.getResources()
						.getColor(R.color.unisalento_esame_f));
			} else if (stato.equals(Esame.STATO_P)) {
				mStatoEsameText.setBackgroundColor(parent.getResources()
						.getColor(R.color.unisalento_esame_p));
			}
        }
        
        int risultati = 0;
        int appelli = 0;
		for (Appello appello : App.appelli) {
			if (!appello.getCodiceEsame().equals(esame.getCodice())) {
				continue;
			}
			if (appello.getStato().equals(Appello.DA_ACCETTARE)
					|| appello.getStato().equals(Appello.RISULTATO_ACCETTATO)
					|| appello.getStato().equals(Appello.RISULTATO_RIFIUTATO)) {
				risultati ++;
			} else {
				appelli++;
			}
		}
		
		String appelliRisultatiText = "";
		if (appelli>0) {
			appelliRisultatiText = parent
					.getResources().getString(R.string.appelli_presenti);
		}
		
		if (risultati>0) {
			if (appelli>0) {
				appelliRisultatiText = appelliRisultatiText.concat(parent
						.getResources().getString(R.string.separator));
			}
			appelliRisultatiText = appelliRisultatiText.concat(parent
					.getResources().getString(R.string.risultati_presenti));
		}
		
		if (!appelliRisultatiText.equals("")) {
			mAppelliRisultati.setVisibility(View.VISIBLE);
			mAppelliRisultati.setText(appelliRisultatiText);
		}
       
        return convertView;
    }
	
	

}
